Field of the Invention
This invention relates generally to the field of computer processors and software. More particularly, the invention relates to an apparatus and method for memory aliasing detection in an out-of-order instruction execution platform such as a binary translation system.
Description of the Related Art
In common hardware-based out-of-order (OOO) machines the program order is preserved by assigning read and write operations a special ID which sets forth the relative age between pairs of reads and writes. The dependent reads can be either held until older conflicting writes are committed, or executed speculatively ahead of older writes and later discarded and re-executed in case of a conflict.
In common software-based out of order systems (often implemented in binary translation infrastructures utilizing transactional memory) the software-reordered reads are usually put into a special buffer where they are later checked by all subsequent writes for the address conflict. If a conflict is detected, the entire transaction is aborted and replayed.